How to interface Arduino with NFD-5641A four digit seven segment display

4 digit 7 segment displays is a common display used for many embedded applications. The main aim here is to learn how to interface the display with Arduino UNO and to display the characters a, b, c, d, e, f, g.

Components Required

  • Arduino UNO
  • 4 digit 7 segment display (NFD-5641AS)
  • USB Cable.
  • 10k potentiometer
  • Connecting wires- 10 No.

4 digit seven segment display

4 digit seven segment displays is a compact, self-contained cathode module which contains four seven segment LED numeric displays. Here, we are using NFD-5641AS display. The display consists of 12 pins.  Each segment in the display module is multiplexed. Multiplexed means it shares the same anode connection points and each of the four digits of the module is having a common cathode connection point. This helps each digit to turn ON or OFF in an independent manner. By varying a pot, corresponding values are displayed on a 4 digit seven segment display. Since microcontroller has 10 bit ADC, potentiometer values vary from 0 to 1023.

Connections

CIRCUIT DIAGRAM

DISPLAY PINS

ARDUINO PIN NO

a

D2

b

D3

c

D4

d

D5

e

D6

f

D7

g

D8

OC1

9

OC2

10

OC3

11

OC4

12

Program

The program displays the characters a, b, c, d, e, f, g.

const int a=2;

const int b=3;

const int c=4;

const int d=5;

const int e=6;

const int f=7;

const int g=8;

const int d1=9;

const int d2=10;

const int d3=11; 

const int d4=12;                          // DISPLAY CONNECTION TO ARDUINO PINS

int length=0;

void setup()

{

Serial.begin(9600);

pinMode(a,OUTPUT);                        // SET AS OUTPUT

pinMode(b,OUTPUT);

pinMode(c,OUTPUT);

pinMode(d,OUTPUT);

pinMode(e,OUTPUT);

pinMode(f,OUTPUT);

pinMode(g,OUTPUT);

pinMode(d1,OUTPUT);

pinMode(d2,OUTPUT);

pinMode(d3,OUTPUT);

pinMode(d4,OUTPUT);

digitalWrite(a,LOW);

digitalWrite(b,LOW);

digitalWrite(c,LOW);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

digitalWrite(d1,LOW);

}

void loop()

{

//  int value= analogRead(A0);            // DISPLAY CHARACTERS

  digitalWrite(d1,LOW);

  digitalWrite(d2,HIGH);

  digitalWrite(d3,HIGH);

  digitalWrite(d4,HIGH);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,LOW);

  delay(1);

  digitalWrite(d1,HIGH);

  digitalWrite(d2,LOW);

  digitalWrite(d3,HIGH);

  digitalWrite(d4,HIGH);

  digitalWrite(a,LOW);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  delay(1);

  digitalWrite(d1,HIGH);

  digitalWrite(d2,HIGH);

  digitalWrite(d3,LOW);

  digitalWrite(d4,HIGH);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,LOW);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,LOW);

  digitalWrite(g,HIGH);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,HIGH);

  delay(50);

   digitalWrite(a,LOW);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,LOW);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,LOW);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,HIGH);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(50);

  digitalWrite(a,HIGH);

  digitalWrite(b,HIGH);

  digitalWrite(c,HIGH);

  digitalWrite(d,HIGH);

  digitalWrite(e,LOW);

  digitalWrite(f,HIGH);

  digitalWrite(g,HIGH);

  delay(50);  

}
Related Items